Conventional communication system switches include private branch exchanges (PBXs), automatic call distribution (ACD) systems, computer-telephony integration (CTI)-based systems, and other premises or enterprise-based call processing elements, as well as portions or combinations of these and other types of systems.
An important application of such switches is in a call center. Call centers distribute calls and other types of communications to available call-handling service agents in accordance with various predetermined criteria. In existing call center systems, the criteria for handling a call are often programmable by the operator of the system via a capability known as call vectoring. Typically, when the system detects that an agent has become available to handle a call, the system identifies the call-handling skills of the agent, usually in some order of priority, and delivers to the agent the longest-waiting call that matches the agent's highest-priority skill. This type of skills-based queuing allows each agent to be placed into a number of different service categories based on the skill types supported by that agent. Additional details regarding these and other call distribution techniques are described in, e.g., U.S. Pat. Nos. 5,740,238, 5,754,639 and 6,049,547, all of which are hereby incorporated by reference herein.
The implementation of call vectoring in a given communication system switch generally involves the use of a processing script, also referred to as a vector. Such a script may comprise a software program or suitable portion thereof having program instructions for directing the switch to apply particular processing operations to a given call when the script is invoked. In the call center context, the script may direct that a given call be queued to a certain agent, that particular announcements be played, and so on.
There are a number of significant problems with the conventional script processing approach in a communication system switch. One such problem is that the switch typically applies the same or a similar script to all incoming calls of a particular type or in a given processing application. This is inefficient in that it unduly limits the flexibility of the system in processing calls, increases script complexity, and requires that valuable switch processor cycles be expended for executing the script for every call.